#include "i2c_aht10.h"
I2C_HandleTypeDef AHT10_i2c_struct;
static DMA_HandleTypeDef HdmaCh1;

uint8_t aTxBuffer[1] = {0xBA};

#define OLED_WRITE_ADDR 0x78
#define OLED_READ_ADDR 0x79

#define PAGE 8
#define COLUMNS 128


void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
{
	#if 1		// DNA模式

	GPIO_InitTypeDef GPIO_InitStruct = {0};

	__HAL_RCC_SYSCFG_CLK_ENABLE();                              /* SYSCFG时钟使能 */
	__HAL_RCC_DMA_CLK_ENABLE();                                 /* DMA时钟使能 */
	__HAL_RCC_I2C_CLK_ENABLE();                                 /* I2C时钟使能 */
	__HAL_RCC_GPIOF_CLK_ENABLE();                               /* GPIOF时钟使能 */

	/**I2C引脚配置
	 PF0     ------> I2C1_SCL
	PF1     ------> I2C1_SDA
	*/
	GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
	GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;                     /* 开漏 */
	GPIO_InitStruct.Pull = GPIO_PULLUP;                         /* 上拉 */
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.Alternate = GPIO_AF12_I2C;                   /* 复用为I2C */
	HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);                     /* GPIO初始化 */
	/*复位I2C*/
	__HAL_RCC_I2C_FORCE_RESET();
	__HAL_RCC_I2C_RELEASE_RESET();

	/* I2C1中断初始化 */
	HAL_NVIC_SetPriority(I2C1_IRQn, 2, 2);                     /* 中断优先级设置 */
	HAL_NVIC_EnableIRQ(I2C1_IRQn);                              /* 使能I2C中断 */

	/* 配置DMA请求映像 */
	HAL_SYSCFG_DMA_Req(9);                                      /* DMA1_MAP选择为IIC_TX */
	// HAL_SYSCFG_DMA_Req(0xA00);                                  /* DMA2_MAP选择为IIC_RX */

	/* */
	/* 配置DMA（用于发送） */
	HdmaCh1.Instance                 = DMA1_Channel1;           /* 选择DMA通道1 */
	HdmaCh1.Init.Direction           = DMA_MEMORY_TO_PERIPH;    /* 方向为从存储器到外设 */
	HdmaCh1.Init.PeriphInc           = DMA_PINC_DISABLE;        /* 禁止外设地址增量 */
	HdmaCh1.Init.MemInc              = DMA_MINC_ENABLE;         /* 使能存储器地址增量 */
	HdmaCh1.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;     /* 外设数据宽度为8位 */
	HdmaCh1.Init.MemDataAlignment    = DMA_MDATAALIGN_BYTE;     /* 存储器数据宽度位8位 */
	HdmaCh1.Init.Mode                = DMA_NORMAL;              /* 禁止循环模式 */
	HdmaCh1.Init.Priority            = DMA_PRIORITY_VERY_HIGH;  /* 通道优先级为很高 */

	HAL_DMA_Init(&HdmaCh1);                                     /* 初始化DMA通道1 */
	__HAL_LINKDMA(hi2c, hdmatx, HdmaCh1);                       /* DMA1关联IIC_TX */

	// /* 配置DMA（用于接收） */
	// HdmaCh2.Instance                 = DMA1_Channel2;           /* 选择DMA通道1 */
	// HdmaCh2.Init.Direction           = DMA_PERIPH_TO_MEMORY;    /* 方向为从外设到存储 */
	// HdmaCh2.Init.PeriphInc           = DMA_PINC_DISABLE;        /* 禁止外设地址增量 */
	// HdmaCh2.Init.MemInc              = DMA_MINC_ENABLE;         /* 使能存储器地址增量 */
	// HdmaCh2.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;     /* 外设数据宽度为8位 */
	// HdmaCh2.Init.MemDataAlignment    = DMA_MDATAALIGN_BYTE;     /* 存储器数据宽度位8位 */
	// HdmaCh2.Init.Mode                = DMA_NORMAL;              /* 禁止循环模式 */
	// HdmaCh2.Init.Priority            = DMA_PRIORITY_HIGH;       /* 通道优先级为高 */

	// HAL_DMA_Init(&HdmaCh2);                                     /* 初始化DMA通道1 */
	// __HAL_LINKDMA(hi2c, hdmarx, HdmaCh2);                       /* DMA1关联IIC_RX */

	HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 3, 3);             /* 中断优先级设置 */
	HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);                     /* 使能DMA通道1中断 */

	// HAL_NVIC_SetPriority(DMA1_Channel2_3_IRQn, 1, 1);           /* 中断优先级设置 */
	// HAL_NVIC_EnableIRQ(DMA1_Channel2_3_IRQn);                   /* 使能DMA通道2_3中断 */

	#else

	GPIO_InitTypeDef I2C_GPIO_struct;
	__HAL_RCC_GPIOF_CLK_ENABLE();
	I2C_GPIO_struct.Pin = GPIO_PIN_0;
	I2C_GPIO_struct.Mode = GPIO_MODE_AF_OD;
	I2C_GPIO_struct.Alternate = GPIO_AF12_I2C;
	HAL_GPIO_Init(GPIOF, &I2C_GPIO_struct);
	I2C_GPIO_struct.Pin = GPIO_PIN_1;
	I2C_GPIO_struct.Mode = GPIO_MODE_AF_OD;
	I2C_GPIO_struct.Alternate = GPIO_AF12_I2C;
	HAL_GPIO_Init(GPIOF, &I2C_GPIO_struct);

	#endif
}

#if 1 // OLED
void oled_I2C_init(void)
{
	#if 1		// DNA模式

	#define DARA_LENGTH      15                 /* 数据长度 */
	#define I2C_ADDRESS      0xA0               /* 本机地址0xA0 */
	#define I2C_SPEEDCLOCK   400000             /* 通讯速度100K */
	#define I2C_DUTYCYCLE    I2C_DUTYCYCLE_16_9 /* 占空比 */

	/* I2C初始化 */
	AHT10_i2c_struct.Instance             = I2C;                           /* I2C */
	AHT10_i2c_struct.Init.ClockSpeed      = I2C_SPEEDCLOCK;                /* I2C通讯速度 */
	AHT10_i2c_struct.Init.DutyCycle       = I2C_DUTYCYCLE;                 /* I2C占空比 */
	AHT10_i2c_struct.Init.OwnAddress1     = I2C_ADDRESS;                   /* I2C地址 */
	AHT10_i2c_struct.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;       /* 禁止广播呼叫 */
	AHT10_i2c_struct.Init.NoStretchMode   = I2C_NOSTRETCH_DISABLE;         /* 允许时钟延长 */
	HAL_I2C_Init(&AHT10_i2c_struct);
	
	#else
	__HAL_RCC_I2C_CLK_ENABLE();
	AHT10_i2c_struct.Instance = I2C;
	AHT10_i2c_struct.Init.ClockSpeed = 400000; // 主机通信频率设置为100KHZ，不能超过400KHZ；
	AHT10_i2c_struct.Mode = HAL_I2C_MODE_MASTER;
	HAL_I2C_Init(&AHT10_i2c_struct);
	#endif
	
}

/* HAL库代码*/
void i2c_write_cmd(uint8_t data)
{
	uint8_t buffer[2] = {0x00};
	buffer[1] = data;
	HAL_I2C_Master_Transmit(&AHT10_i2c_struct, OLED_WRITE_ADDR, (uint8_t *)&buffer, 2, 15);
}

void i2c_write_data(uint8_t data)
{
	uint8_t buffer[2] = {0x40};
	buffer[1] = data;
	HAL_I2C_Master_Transmit(&AHT10_i2c_struct, OLED_WRITE_ADDR, (uint8_t *)&buffer, 2, 15);
}

void HAL_OLED_Init(void)
{
	i2c_write_cmd(0xAE);
	i2c_write_cmd(0x20);
	i2c_write_cmd(0x10);
	i2c_write_cmd(0xB0);
	i2c_write_cmd(0xC8);

	i2c_write_cmd(0x00);
	i2c_write_cmd(0x10);
	i2c_write_cmd(0x40);
	i2c_write_cmd(0x81);
	i2c_write_cmd(0xFF);

	i2c_write_cmd(0xA1);
	i2c_write_cmd(0xA6);
	i2c_write_cmd(0xA8);
	i2c_write_cmd(0x3F);
	i2c_write_cmd(0xA4);

	i2c_write_cmd(0xD3);
	i2c_write_cmd(0x00);
	i2c_write_cmd(0xD5);
	i2c_write_cmd(0xF0);
	i2c_write_cmd(0xD9);

	i2c_write_cmd(0x22);
	i2c_write_cmd(0xDA);
	i2c_write_cmd(0x12);
	i2c_write_cmd(0xDB);
	i2c_write_cmd(0x20);

	i2c_write_cmd(0x8D);
	i2c_write_cmd(0x14);
	i2c_write_cmd(0xAF);
}

void oled_set_pos(uint8_t x, uint8_t y)
{
	i2c_write_cmd(0xB0 + y);
	i2c_write_cmd(((x & 0xF0) >> 4) | 0x10);
	i2c_write_cmd((x & 0x0F) | 0x01);
}

void oled_fill(uint8_t fillData)
{
	for (uint8_t page = 0; page < PAGE; page++)
	{
		i2c_write_cmd(0xB0 + page);
		i2c_write_cmd(0x00);
		i2c_write_cmd(0x10);
		for (uint8_t col = 0; col < COLUMNS; col++)
		{
			i2c_write_data(fillData);
		}
	}
}

void oled_clear(void)
{
	oled_fill(0x00);
}

#endif

#if 1 // OLED 显示
// 设计思路：将显示的内容存在一个缓存数组中，然后将数组中的内容显示出来。减少对寄存器的操作次数。
#include <math.h>

uint8_t OLED_dis_buf[8][128]; // OLED显示缓存

// 清除显示缓存
void oled_dis_clear(void)
{
	uint8_t i, j;
	for (i = 0; i < 8; i++)
	{
		for (j = 0; j < 128; j++)
		{
			OLED_dis_buf[i][j] = 0x00;
		}
	}
}

// 画点
void oled_dis_point(uint8_t x, uint8_t y)
{
	uint8_t i = 0;
	if (x > 127 || y > 63)
		return;
	i = y >> 3;		  // 计算在第几页
	y = y - (i << 3); // 计算在第几行
	OLED_dis_buf[i][x] |= (0x01 << y);
}

// 划线
void oled_dis_line(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
{
	uint8_t x, y;
	uint8_t t;
	int8_t xerr = 0, yerr = 0;

	if (x1 > x2)
	{
		t = x1;
		x1 = x2;
		x2 = t;
		t = y1;
		y1 = y2;
		y2 = t;
	}
	x = x1;
	y = y1;
	xerr = yerr = (y2 - y1);
	xerr *= 2;
	yerr *= 2;
	for (; x < x2; x++)
	{
		oled_dis_point(x, y);
		xerr -= yerr;
		if (xerr < 0)
		{
			y += ((y1 > y2) ? -1 : 1);
			xerr += xerr + 2 * yerr;
		}
	}
}

#define MAX(x, y) ((x) > (y) ? (x) : (y))
#define MIN(x, y) ((x) < (y) ? (x) : (y))
// Bresenham直线算法实现
void drawLine(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1)
{
	uint8_t dx = MAX(x0, x1) - MIN(x0, x1); // abs(x1 - x0);
	uint8_t dy = MAX(y0, y1) - MIN(y0, y1);
	uint8_t sx = (x0 < x1) ? 1 : -1;
	uint8_t sy = (y0 < y1) ? 1 : -1;
	int8_t err = dx - dy;

	while (1)
	{
		if (x0 < 128 && y0 < 64)
		{
			oled_dis_point(x0, y0); // 设置当前像素颜色
		}

		if (x0 == x1 && y0 == y1)
			break; // 如果到达终点，则退出循环
		int e2 = err * 2;
		if (e2 > -dy)
		{
			err -= dy;
			x0 += sx;
		} // e_xy+e_x > 0
		if (e2 < dx)
		{
			err += dx;
			y0 += sy;
		} // e_xy+e_y < 0
	}
}

// Bresenham画圆算法
void bresenhamCircle(uint8_t xc, uint8_t yc, uint8_t r)
{
	int x = 0;
	int y = r;
	int d = 3 - 2 * r;

	oled_dis_point(xc + x, yc + y);
	oled_dis_point(xc - x, yc + y);
	oled_dis_point(xc + x, yc - y);
	oled_dis_point(xc - x, yc - y);
	oled_dis_point(xc + y, yc + x);
	oled_dis_point(xc - y, yc + x);
	oled_dis_point(xc + y, yc - x);
	oled_dis_point(xc - y, yc - x);

	while (x < y)
	{
		if (d < 0)
		{
			d = d + 4 * x + 6;
		}
		else
		{
			d = d + 4 * (x - y) + 10;
			y--;
		}
		x++;

		oled_dis_point(xc + x, yc + y);
		oled_dis_point(xc - x, yc + y);
		oled_dis_point(xc + x, yc - y);
		oled_dis_point(xc - x, yc - y);
		oled_dis_point(xc + y, yc + x);
		oled_dis_point(xc - y, yc + x);
		oled_dis_point(xc + y, yc - x);
		oled_dis_point(xc - y, yc - x);
	}
}

// 画矩形-实心
void oled_dis_rectangle(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
{
	uint8_t i, j;
	for (i = 0; i < h; i++)
	{
		for (j = 0; j < w; j++)
		{
			oled_dis_point(x + j, y + i);
		}
	}
}
// 画矩形-空心
void oled_dis_rectangle2(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
{
	uint8_t i, j;
	for (i = 0; i < h; i++)
	{
		for (j = 0; j < w; j++)
		{
			if (i == 0 || i == h - 1 || j == 0 || j == w - 1)
			{
				oled_dis_point(x + j, y + i);
			}
		}
	}
}

void oled_dis_show(void)
{
	
	#if 1
	#if 1		// 测试DMA模式
	HAL_I2C_Mem_Write_DMA(&AHT10_i2c_struct, OLED_WRITE_ADDR, 0x40, I2C_MEMADD_SIZE_8BIT, (uint8_t *)&OLED_dis_buf, 128*8);

	#else		// 测试普通模式
	HAL_I2C_Master_CMD_Transmit(&AHT10_i2c_struct, OLED_WRITE_ADDR, (uint8_t *)&OLED_dis_buf, 128*8, 0xFF);
	#endif

	#else
	uint8_t i, j;
	for (i = 0; i < 8; i++)
	{
		oled_set_pos(0, i);
		for (j = 0; j < 128; j++)
		{
			i2c_write_data(OLED_dis_buf[i][j]);
		}
	}
	#endif
}

const uint8_t data_dis_1[] =
	{
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x78, 0x40,
		0x40, 0x78, 0x40, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x48, 0x48, 0x48, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x04, 0x04, 0x04, 0x04,
		0x04, 0x04, 0x04, 0x04, 0x04, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x48, 0x48, 0x48, 0x00, 0x00,
		0x00, 0x00, 0x12, 0x12, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x20,
		0x20, 0x20, 0x20, 0x20, 0x20, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x12, 0x12, 0x12, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x3C, 0x04, 0x04, 0x3C, 0x04,
		0x04, 0x3C, 0x04, 0x04, 0x3C, 0x04, 0x04, 0x04, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*"D:\xmfu_github\加热平台\UI图标\电子制造业.bmp",0*/
};

const uint8_t data_dis_2[] =
	{
		0x00, 0x00, 0xF0, 0xFC, 0xFC, 0xFE, 0x0F, 0x07, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFE, 0xFE, 0x0F,
		0x07, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFE, 0xFE, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0xF8, 0xF0, 0xE0, 0x80, 0x03, 0x07, 0x0F, 0x1F,
		0x3E, 0xF8, 0xF0, 0xE0, 0x81, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0xF8, 0xF0, 0xE0, 0x80, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x3C, 0x3F, 0x1F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x30,
		0x3C, 0x3F, 0x1F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x38, 0x3C, 0x3F, 0x1F, 0x0F, 0x03, 0x00, 0x00,
		0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE6, 0xE6, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
		0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE6, 0xE6, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, /*"D:\xmfu_github\加热平台\UI图标\加热.bmp",0*/
};

const uint8_t data_dis_3[] =
	{
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0x18, 0x1C, 0x0C, 0x0C, 0x08, 0x10, 0x10, 0x10,
		0x10, 0x10, 0x10, 0x08, 0x0C, 0x0C, 0x1C, 0x18, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0xE0, 0x30, 0x10, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x80, 0xE0, 0x30, 0x18, 0x08, 0x0C,
		0x0C, 0x08, 0x18, 0x30, 0xE0, 0x80, 0x00, 0x00, 0x03, 0x07, 0x1C, 0x10, 0x30, 0xE0, 0x00, 0x00,
		0x00, 0x00, 0x0F, 0x0C, 0x18, 0x38, 0xE0, 0xC0, 0x00, 0x00, 0x01, 0x07, 0x0C, 0x18, 0x10, 0x30,
		0x30, 0x10, 0x18, 0x0C, 0x07, 0x01, 0x00, 0x00, 0xC0, 0xE0, 0x38, 0x18, 0x0C, 0x0F, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x18, 0x18, 0x30, 0x30, 0x30, 0x18, 0x08, 0x08,
		0x08, 0x08, 0x18, 0x30, 0x30, 0x30, 0x18, 0x18, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*"D:\xmfu_github\加热平台\UI图标\设置.bmp",0*/

};

const uint8_t data_dis_4[] =
	{
		0x00, 0x00, 0xF0, 0xF8, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x8C, 0x8C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
		0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0xF8, 0xF0, 0x00, 0x00,
		0x00, 0x00, 0xFF, 0xFF, 0x80, 0x80, 0xE0, 0xF8, 0x1E, 0x07, 0x1F, 0xFE, 0xE0, 0x00, 0x00, 0x00,
		0xE0, 0xF8, 0xF8, 0xE0, 0x80, 0x00, 0x80, 0xE0, 0xE0, 0xC0, 0x80, 0x80, 0xFF, 0xFF, 0x00, 0x00,
		0x00, 0x00, 0xFF, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x7F, 0x7C, 0x1F,
		0x03, 0x00, 0x00, 0x03, 0x0F, 0x1E, 0x1F, 0x07, 0x00, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0x00, 0x00,
		0x00, 0x00, 0x0F, 0x1F, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
		0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x1F, 0x0F, 0x00, 0x00, /*"D:\xmfu_github\加热平台\UI图标\系统状态.bmp",0*/
};

const uint8_t data_dis_5[] =
	{
		0x00, 0x00, 0x80, 0xC0, 0x20, 0x10, 0x08, 0x0C, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x81, 0x81,
		0x81, 0x81, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x0C, 0x08, 0x10, 0x20, 0xC0, 0x80, 0x00, 0x00,
		0xF0, 0x0E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xE0,
		0xE0, 0x01, 0xFE, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0E, 0xF0,
		0x0F, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xC6, 0x9B, 0x7C, 0x7F,
		0x7F, 0x3C, 0x93, 0x6C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0F,
		0x00, 0x00, 0x01, 0x03, 0x04, 0x08, 0x10, 0x30, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x81, 0x81,
		0x81, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x30, 0x10, 0x08, 0x04, 0x03, 0x01, 0x00, 0x00, /*"D:\xmfu_github\加热平台\UI图标\智能控温.bmp",0*/
};

const uint8_t data_dis_6[] =
	{
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F,
		0x3F, 0x7E, 0xFC, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8,
		0xFC, 0x7E, 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x3E, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*"D:\xmfu_github\加热平台\UI图标\右.bmp",0*/

};

const uint8_t data_dis_7[] =
	{
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFC, 0x7E, 0x3F,
		0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, 0x7E, 0xFC,
		0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x3E, 0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*"D:\xmfu_github\加热平台\UI图标\左.bmp",0*/
};

const uint8_t data_dis_16_1[] =
	{
		0x00, 0xE0, 0x10, 0x08, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x08, 0x10, 0xC0, 0x00,
		0x00, 0x07, 0x08, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x03, 0x00, /*"D:\xmfu_github\加热平台\UI图标\单选.bmp",0*/
};

const uint8_t data_dis_16_2[] =
	{
		0x00, 0xE0, 0x10, 0x08, 0xC4, 0xE2, 0xF2, 0xF2, 0xF2, 0xF2, 0xE2, 0xC4, 0x08, 0x10, 0xC0, 0x00,
		0x00, 0x07, 0x08, 0x10, 0x23, 0x47, 0x4F, 0x4F, 0x4F, 0x4F, 0x47, 0x23, 0x10, 0x08, 0x03, 0x00, /*"D:\xmfu_github\加热平台\UI图标\单选选中.bmp",0*/
};


/*从第一列开始向下
取8个点作为一个字节
，然后从第二列开始向
下取8个点作为第二个
字节...依此类推。如
果最后不足8个点就补
满8位。
   取模顺序是从低到
高，即第一个点作为最
低位。如*-------取
为00000001
*/

// 取字模方式：采用四周只留一个空格方式  // BUG:取字模时需要保存使用的字体，避免增加字库时不知道使用的是什么字体。 

// 8*12 ASCII符号集点阵
// const unsigned char asc2_0816_T[2][16] =
// {
// 	{0x7C,0x82,0x86,0x78,0xE0,0x1C,0x00,0x00,0x00,0x40,0x38,0x07,0x3E,0x41,0x61,0x1E},/*"%",0*/
// 	{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00},/*".",1*/
// };
// 8*16 ASCII字符集点阵
const unsigned char asc2_0816[ASC2_MAX][16] = 
{
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x10,0x0C,0x02,0x10,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/
{0x00,0x40,0xC0,0x78,0x40,0xC0,0x78,0x00,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x00},/*"#",3*/
{0x00,0x70,0x88,0x88,0xFC,0x08,0x30,0x00,0x00,0x18,0x20,0x20,0xFF,0x21,0x1E,0x00},/*"$",4*/
{0xF0,0x08,0xF0,0x80,0x60,0x18,0x00,0x00,0x00,0x31,0x0C,0x03,0x1E,0x21,0x1E,0x00},/*"%",5*/
{0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x2C,0x19,0x27,0x21,0x10},/*"&",6*/
{0x00,0x12,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00},/*"(",8*/
{0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00},/*")",9*/
{0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00},/*"*",10*/
{0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0F,0x01,0x01,0x01},/*"+",11*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x70,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00},/*"-",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x00,0xC0,0x38,0x04,0x00,0x00,0x60,0x18,0x07,0x00,0x00,0x00,0x00},/*"/",15*/
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"0",16*/
{0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00},/*"1",17*/
{0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"2",18*/
{0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00},/*"3",19*/
{0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24},/*"4",20*/
{0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00},/*"5",21*/
{0x00,0xE0,0x10,0x88,0x88,0x90,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00},/*"6",22*/
{0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,0x00,0x00,0x00,0x3E,0x01,0x00,0x00,0x00},/*"7",23*/
{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},/*"8",24*/
{0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x01,0x12,0x22,0x22,0x11,0x0F,0x00},/*"9",25*/
{0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00},/*"<",28*/
{0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00},/*"=",29*/
{0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00},/*">",30*/
{0x00,0x70,0x48,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x30,0x37,0x00,0x00,0x00},/*"?",31*/
{0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x28,0x2F,0x28,0x17,0x00},/*"@",32*/
{0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20},/*"A",33*/
{0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00},/*"B",34*/
{0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00},/*"C",35*/
{0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00},/*"D",36*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00},/*"E",37*/
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00},/*"F",38*/
{0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00},/*"G",39*/
{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20},/*"H",40*/
{0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"I",41*/
{0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00},/*"J",42*/
{0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00},/*"K",43*/
{0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00},/*"L",44*/
{0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x01,0x3E,0x01,0x3F,0x20,0x00},/*"M",45*/
{0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00},/*"N",46*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00},/*"O",47*/
{0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00},/*"P",48*/
{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x28,0x28,0x30,0x50,0x4F,0x00},/*"Q",49*/
{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20},/*"R",50*/
{0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00},/*"S",51*/
{0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00},/*"T",52*/
{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00},/*"U",53*/
{0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00},/*"V",54*/
{0x08,0xF8,0x00,0xF8,0x00,0xF8,0x08,0x00,0x00,0x03,0x3E,0x01,0x3E,0x03,0x00,0x00},/*"W",55*/
{0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20},/*"X",56*/
{0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00},/*"Y",57*/
{0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00},/*"Z",58*/
{0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00},/*"[",59*/
{0x00,0x04,0x38,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00},/*"\",60*/
{0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x04,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},/*"_",63*/
{0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x19,0x24,0x24,0x12,0x3F,0x20,0x00},/*"a",65*/
{0x10,0xF0,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00},/*"b",66*/
{0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00},/*"c",67*/
{0x00,0x00,0x80,0x80,0x80,0x90,0xF0,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20},/*"d",68*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x24,0x24,0x24,0x24,0x17,0x00},/*"e",69*/
{0x00,0x80,0x80,0xE0,0x90,0x90,0x20,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"f",70*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00},/*"g",71*/
{0x10,0xF0,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20},/*"h",72*/
{0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00},/*"j",74*/
{0x10,0xF0,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x06,0x29,0x30,0x20,0x00},/*"k",75*/
{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"l",76*/
{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F},/*"m",77*/
{0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20},/*"n",78*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00},/*"o",79*/
{0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0x91,0x20,0x20,0x11,0x0E,0x00},/*"p",80*/
{0x00,0x00,0x00,0x80,0x80,0x00,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0x91,0xFF,0x80},/*"q",81*/
{0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00},/*"r",82*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00},/*"s",83*/
{0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x10,0x00},/*"t",84*/
{0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20},/*"u",85*/
{0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x03,0x0C,0x30,0x0C,0x03,0x00,0x00},/*"v",86*/
{0x80,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x01,0x0E,0x30,0x0C,0x07,0x38,0x06,0x01},/*"w",87*/
{0x00,0x80,0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x20,0x31,0x0E,0x2E,0x31,0x20,0x00},/*"x",88*/
{0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x81,0x86,0x78,0x18,0x06,0x01,0x00},/*"y",89*/
{0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00},/*"z",90*/
};

const uint8_t asc2_1224[ASC2_MAX][36] = 
{
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x80,0x60,0x30,0x1C,0x8C,0x60,0x30,0x1C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/
{0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x83,0x83,0xFF,0x83,0x83,0x83,0x83,0xFB,0x87,0x83,0x00,0x00,0x01,0x1F,0x01,0x01,0x01,0x01,0x01,0x1F,0x01,0x01,0x00},/*"#",3*/
{0x00,0x00,0x80,0xC0,0x60,0x20,0xF8,0x20,0xE0,0xC0,0x00,0x00,0x00,0x00,0x03,0x07,0x0C,0x18,0xFF,0x71,0xE1,0x81,0x00,0x00,0x00,0x00,0x07,0x0F,0x12,0x10,0x7F,0x10,0x0F,0x07,0x00,0x00},/*"$",4*/
{0xC0,0x30,0x10,0x30,0xC0,0x00,0x00,0xC0,0x30,0x00,0x00,0x00,0x07,0x18,0x10,0x18,0xCF,0x38,0xC6,0x31,0x10,0x30,0xC0,0x00,0x00,0x00,0x18,0x07,0x00,0x00,0x07,0x18,0x10,0x18,0x07,0x00},/*"%",5*/
{0x00,0x00,0xE0,0xF0,0x10,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x17,0x3F,0xF8,0xC7,0x03,0x08,0xF8,0x08,0x08,0x00,0x07,0x0F,0x18,0x10,0x10,0x13,0x0F,0x0E,0x19,0x10,0x10,0x0C},/*"&",6*/
{0x00,0x00,0x8C,0x4C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x10,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x00},/*"(",8*/
{0x00,0x04,0x08,0x10,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
{0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x24,0x38,0x10,0xFF,0x18,0x3C,0x24,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00},/*"*",10*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00},/*"+",11*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0x4C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x38,0x0C,0x00,0x00,0x00,0x00,0x00,0x80,0x70,0x1C,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x38,0x0E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"/",15*/
{0x00,0x00,0x80,0xC0,0x60,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0xFE,0xFF,0x01,0x00,0x00,0x00,0x00,0x01,0xFF,0xFE,0x00,0x00,0x01,0x07,0x0E,0x18,0x10,0x10,0x18,0x0E,0x07,0x01,0x00},/*"0",16*/
{0x00,0x00,0x40,0x40,0x40,0xC0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x1F,0x1F,0x10,0x10,0x10,0x00,0x00},/*"1",17*/
{0x00,0x80,0x40,0x20,0x20,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0xC0,0x60,0x30,0x1F,0x07,0x00,0x00,0x00,0x18,0x1C,0x12,0x11,0x10,0x10,0x10,0x10,0x1E,0x00,0x00},/*"2",18*/
{0x00,0xC0,0xC0,0x20,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x10,0x10,0x18,0x2F,0xE7,0x80,0x00,0x00,0x00,0x0E,0x0E,0x10,0x10,0x10,0x10,0x18,0x0F,0x07,0x00,0x00},/*"3",19*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xE0,0x00,0x00,0x00,0x00,0xC0,0xA0,0x98,0x84,0x83,0x80,0xFF,0xFF,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x1F,0x10,0x10,0x00},/*"4",20*/
{0x00,0x00,0xE0,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x3F,0x10,0x08,0x08,0x08,0x18,0xF0,0xE0,0x00,0x00,0x00,0x07,0x0B,0x10,0x10,0x10,0x10,0x1C,0x0F,0x03,0x00,0x00},/*"5",21*/
{0x00,0x00,0x80,0xC0,0x40,0x20,0x20,0x20,0xE0,0xC0,0x00,0x00,0x00,0xFC,0xFF,0x21,0x10,0x08,0x08,0x08,0x18,0xF0,0xE0,0x00,0x00,0x01,0x07,0x0C,0x18,0x10,0x10,0x10,0x08,0x0F,0x03,0x00},/*"6",22*/
{0x00,0x00,0xC0,0x60,0x20,0x20,0x20,0x20,0x20,0xE0,0x60,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xE0,0x18,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00},/*"7",23*/
{0x00,0x80,0xC0,0x60,0x20,0x20,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x83,0xCF,0x6C,0x18,0x10,0x30,0x30,0x68,0xCF,0x83,0x00,0x00,0x07,0x0F,0x08,0x10,0x10,0x10,0x10,0x18,0x0F,0x07,0x00},/*"8",24*/
{0x00,0x00,0xC0,0xC0,0x20,0x20,0x20,0x20,0xC0,0x80,0x00,0x00,0x00,0x1F,0x3F,0x60,0x40,0x40,0x40,0x20,0x10,0xFF,0xFE,0x00,0x00,0x00,0x0C,0x1C,0x10,0x10,0x10,0x08,0x0F,0x03,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD8,0x38,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x00,0x00,0x00,0x10,0x28,0x44,0x82,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00},/*"<",28*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"=",29*/
{0x00,0x00,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00},/*">",30*/
{0x00,0x00,0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x07,0x06,0x00,0x00,0xE0,0x10,0x18,0x08,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00},/*"?",31*/
{0x00,0x00,0xC0,0xE0,0x20,0x10,0x90,0x90,0xA0,0x60,0x80,0x00,0x00,0xFE,0xFF,0x00,0xF8,0xFF,0x03,0xFC,0x07,0x80,0x7F,0x00,0x00,0x00,0x07,0x0E,0x18,0x11,0x11,0x11,0x09,0x0C,0x02,0x00},/*"@",32*/
{0x00,0x00,0x00,0x00,0x80,0x60,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x78,0x47,0x40,0x41,0x5F,0xF0,0x80,0x00,0x00,0x10,0x1C,0x13,0x10,0x00,0x00,0x00,0x00,0x11,0x1F,0x18,0x10},/*"A",33*/
{0x00,0x20,0xE0,0xE0,0x20,0x20,0x20,0x60,0xC0,0xC0,0x00,0x00,0x00,0x00,0xFF,0xFF,0x10,0x10,0x10,0x18,0x2F,0xE7,0x80,0x00,0x00,0x10,0x1F,0x1F,0x10,0x10,0x10,0x10,0x18,0x0F,0x07,0x00},/*"B",34*/
{0x00,0x00,0x80,0xC0,0x40,0x20,0x20,0x20,0x60,0xE0,0x80,0x00,0x00,0xFC,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x01,0x07,0x0E,0x18,0x10,0x10,0x10,0x08,0x0C,0x03,0x00},/*"C",35*/
{0x20,0x20,0xE0,0xE0,0x20,0x20,0x20,0x40,0xC0,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0xFF,0xFE,0x00,0x10,0x10,0x1F,0x1F,0x10,0x10,0x10,0x08,0x0E,0x07,0x01,0x00},/*"D",36*/
{0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x80,0x00,0x00,0xFF,0xFF,0x10,0x10,0x10,0x10,0xFC,0x00,0x00,0x01,0x00,0x10,0x1F,0x1F,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x06,0x00},/*"E",37*/
{0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x80,0x00,0x00,0xFF,0xFF,0x10,0x10,0x10,0x10,0xFC,0x00,0x00,0x01,0x00,0x10,0x1F,0x1F,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"F",38*/
{0x00,0x00,0x80,0xC0,0x60,0x20,0x20,0x20,0x40,0x80,0x00,0x00,0x00,0xFC,0xFF,0x01,0x00,0x00,0x40,0x40,0xC0,0xC3,0x40,0x40,0x00,0x01,0x07,0x0E,0x18,0x10,0x10,0x10,0x0F,0x0F,0x00,0x00},/*"G",39*/
{0x20,0xE0,0xE0,0x20,0x00,0x00,0x00,0x00,0x20,0xE0,0xE0,0x20,0x00,0xFF,0xFF,0x10,0x10,0x10,0x10,0x10,0x10,0xFF,0xFF,0x00,0x10,0x1F,0x1F,0x10,0x00,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10},/*"H",40*/
{0x00,0x00,0x20,0x20,0x20,0xE0,0xE0,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x1F,0x1F,0x10,0x10,0x10,0x00,0x00},/*"I",41*/
{0x00,0x00,0x00,0x20,0x20,0x20,0xE0,0xE0,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0x80,0x80,0xC0,0x7F,0x3F,0x00,0x00,0x00,0x00},/*"J",42*/
{0x20,0xE0,0xE0,0x20,0x00,0x00,0xA0,0xE0,0x60,0x20,0x00,0x00,0x00,0xFF,0xFF,0x30,0x0C,0x3A,0xE1,0x80,0x00,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,0x00,0x00,0x00,0x13,0x1E,0x18,0x10,0x00},/*"K",43*/
{0x20,0xE0,0xE0,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x06,0x00},/*"L",44*/
{0x20,0xE0,0xE0,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0x20,0x00,0x00,0xFF,0x0F,0xFF,0xE0,0x80,0x7C,0x03,0xFF,0xFF,0x00,0x00,0x10,0x1F,0x10,0x00,0x0F,0x07,0x00,0x10,0x1F,0x1F,0x10,0x00},/*"M",45*/
{0x00,0x20,0xE0,0xE0,0x80,0x00,0x00,0x20,0x20,0xE0,0x20,0x20,0x00,0x00,0xFF,0x01,0x07,0x1E,0x78,0xC0,0x00,0xFF,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x00,0x03,0x0F,0x1F,0x00,0x00},/*"N",46*/
{0x00,0x00,0x80,0xC0,0x60,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0xFE,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x00,0x01,0x07,0x0E,0x18,0x10,0x10,0x18,0x0C,0x07,0x01,0x00},/*"O",47*/
{0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,0x20,0x40,0xC0,0x80,0x00,0x00,0xFF,0xFF,0x20,0x20,0x20,0x20,0x30,0x10,0x1F,0x0F,0x00,0x10,0x1F,0x1F,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"P",48*/
{0x00,0x00,0x80,0xC0,0x60,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0xFE,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x00,0x01,0x07,0x0E,0x19,0x11,0x17,0x3C,0x6C,0x67,0x21,0x00},/*"Q",49*/
{0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0xFF,0xFF,0x10,0x10,0x10,0x70,0xD0,0x08,0x0F,0x07,0x00,0x10,0x1F,0x1F,0x10,0x00,0x00,0x00,0x01,0x07,0x1E,0x18,0x10},/*"R",50*/
{0x00,0x80,0xC0,0x60,0x20,0x20,0x20,0x20,0x40,0xE0,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x38,0x30,0x70,0xE0,0xE1,0x80,0x00,0x00,0x07,0x0C,0x08,0x10,0x10,0x10,0x10,0x18,0x0F,0x07,0x00},/*"S",51*/
{0x80,0x60,0x20,0x20,0x20,0xE0,0xE0,0x20,0x20,0x20,0x60,0x80,0x01,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x10,0x1F,0x1F,0x10,0x10,0x00,0x00,0x00},/*"T",52*/
{0x00,0x20,0xE0,0xE0,0x20,0x00,0x00,0x00,0x20,0xE0,0x20,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x07,0x0F,0x18,0x10,0x10,0x10,0x08,0x07,0x00,0x00},/*"U",53*/
{0x20,0x60,0xE0,0x20,0x00,0x00,0x00,0x00,0xA0,0x60,0x20,0x00,0x00,0x00,0x07,0x7E,0xE0,0x00,0x80,0x78,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1E,0x03,0x00,0x00,0x00,0x00,0x00},/*"V",54*/
{0x20,0xE0,0x20,0x00,0x20,0x60,0xE0,0x20,0x00,0x20,0xE0,0x20,0x00,0x03,0xFF,0xC0,0xC0,0x3C,0x3F,0xF0,0x80,0x7C,0x03,0x00,0x00,0x00,0x00,0x1F,0x03,0x00,0x00,0x1F,0x07,0x00,0x00,0x00},/*"W",55*/
{0x00,0x20,0x60,0xE0,0x20,0x00,0x00,0x20,0xE0,0x20,0x20,0x00,0x00,0x00,0x00,0x01,0x87,0x7C,0xE8,0x86,0x01,0x00,0x00,0x00,0x00,0x10,0x18,0x16,0x01,0x00,0x00,0x13,0x1E,0x18,0x10,0x00},/*"X",56*/
{0x20,0x60,0xE0,0x20,0x00,0x00,0x00,0x00,0x20,0xA0,0x60,0x20,0x00,0x00,0x01,0x0F,0x3C,0xF8,0xE0,0x18,0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x1F,0x10,0x10,0x00,0x00,0x00},/*"Y",57*/
{0x00,0x80,0xE0,0x60,0x20,0x20,0x20,0x20,0xA0,0xE0,0x20,0x00,0x00,0x01,0x00,0x00,0x80,0x60,0x18,0x06,0x03,0x00,0x00,0x00,0x00,0x10,0x1C,0x17,0x11,0x10,0x10,0x10,0x10,0x18,0x06,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x00,0xFC,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x40,0x00,0x00},/*"[",59*/
{0x00,0x00,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x18,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x70,0x80,0x00},/*"\",60*/
{0x00,0x00,0x04,0x04,0x04,0x04,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x00,0x08,0x04,0x02,0x02,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},/*"_",63*/
{0x00,0x00,0x00,0x04,0x04,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x98,0x84,0x44,0x44,0x44,0xFC,0xF8,0x00,0x00,0x00,0x0F,0x1F,0x19,0x10,0x10,0x10,0x08,0x0F,0x1F,0x10,0x18},/*"a",65*/
{0x00,0x20,0xE0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x18,0x08,0x04,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x1F,0x0F,0x08,0x10,0x10,0x10,0x18,0x0F,0x03,0x00},/*"b",66*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0x18,0x04,0x04,0x04,0x3C,0x38,0x00,0x00,0x00,0x00,0x03,0x0F,0x0C,0x10,0x10,0x10,0x10,0x08,0x06,0x00,0x00},/*"c",67*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0xE0,0xF0,0x00,0x00,0x00,0xE0,0xF8,0x1C,0x04,0x04,0x04,0x08,0xFF,0xFF,0x00,0x00,0x00,0x03,0x0F,0x18,0x10,0x10,0x10,0x08,0x1F,0x0F,0x08,0x00},/*"d",68*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0x88,0x84,0x84,0x84,0x8C,0xF8,0xE0,0x00,0x00,0x00,0x03,0x0F,0x0C,0x10,0x10,0x10,0x10,0x08,0x04,0x00},/*"e",69*/
{0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x20,0x20,0xE0,0xC0,0x00,0x00,0x04,0x04,0x04,0xFF,0xFF,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x1F,0x10,0x10,0x10,0x00,0x00,0x00},/*"f",70*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xF8,0x8C,0x04,0x0C,0xFC,0xF4,0x0C,0x0C,0x00,0x00,0x70,0x7E,0xCF,0x85,0x85,0x8D,0xCD,0x78,0x78,0x00,0x00},/*"g",71*/
{0x00,0x20,0xE0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x08,0x04,0x04,0x04,0xFC,0xF8,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,0x00,0x00,0x10,0x1F,0x1F,0x10,0x00},/*"h",72*/
{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0xFC,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x1F,0x1F,0x10,0x10,0x10,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0xFC,0xFE,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x80,0x80,0xC0,0x7F,0x3F,0x00,0x00,0x00},/*"j",74*/
{0x00,0x20,0xE0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,0x40,0xE0,0x1C,0x04,0x04,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,0x00,0x00,0x13,0x1E,0x18,0x10,0x00},/*"k",75*/
{0x00,0x00,0x20,0x20,0x20,0xE0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x1F,0x1F,0x10,0x10,0x10,0x00,0x00},/*"l",76*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x08,0x04,0xFC,0xF8,0x08,0x04,0xFC,0xFC,0x00,0x10,0x1F,0x1F,0x10,0x10,0x1F,0x1F,0x10,0x10,0x1F,0x1F,0x10},/*"m",77*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x08,0x04,0x04,0x04,0xFC,0xF8,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,0x00,0x00,0x10,0x1F,0x1F,0x10,0x00},/*"n",78*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0x18,0x0C,0x04,0x04,0x0C,0x18,0xF0,0xE0,0x00,0x00,0x03,0x0F,0x0C,0x10,0x10,0x10,0x10,0x0C,0x0F,0x03,0x00},/*"o",79*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x08,0x04,0x04,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x80,0xFF,0xFF,0x88,0x90,0x10,0x10,0x1C,0x0F,0x03,0x00},/*"p",80*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0x1C,0x04,0x04,0x04,0x08,0xF8,0xFC,0x00,0x00,0x00,0x03,0x0F,0x18,0x10,0x10,0x90,0x88,0xFF,0xFF,0x80,0x00},/*"q",81*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0xFC,0xFC,0x10,0x08,0x04,0x04,0x1C,0x18,0x00,0x10,0x10,0x10,0x1F,0x1F,0x10,0x10,0x10,0x00,0x00,0x00,0x00},/*"r",82*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x78,0xCC,0xC4,0x84,0x84,0x0C,0x3C,0x00,0x00,0x00,0x00,0x1E,0x18,0x10,0x10,0x11,0x19,0x1F,0x0F,0x00,0x00},/*"s",83*/
{0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0xFF,0xFF,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x10,0x10,0x10,0x0C,0x00,0x00},/*"t",84*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xFE,0x00,0x00,0x00,0x04,0xFC,0xFE,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x10,0x10,0x08,0x1F,0x0F,0x08,0x00},/*"u",85*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0C,0x7C,0xC4,0x00,0x00,0x80,0x74,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0x0C,0x03,0x00,0x00,0x00,0x00},/*"v",86*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1C,0xF4,0x80,0x04,0xEC,0xFC,0x84,0x00,0xE4,0x1C,0x04,0x00,0x00,0x01,0x1F,0x0F,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00},/*"w",87*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0C,0x3C,0xE4,0xC0,0x24,0x1C,0x04,0x04,0x00,0x00,0x10,0x10,0x1C,0x12,0x01,0x01,0x13,0x1C,0x18,0x10,0x00},/*"x",88*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x3C,0xC4,0x00,0x00,0xC4,0x3C,0x04,0x04,0x00,0x00,0x00,0xC0,0x80,0x81,0x7F,0x0E,0x01,0x00,0x00,0x00,0x00},/*"y",89*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x04,0x04,0xC4,0x74,0x1C,0x0C,0x00,0x00,0x00,0x00,0x00,0x18,0x1E,0x13,0x11,0x10,0x10,0x18,0x0E,0x00,0x00},/*"z",90*/
};

const uint8_t number_1624[10][48] = 
{
	// 0(0) 1(1) 2(2) 3(3) 4(4) 5(5) 6(6) 7(7) 8(8) 9(9)

	{0x00,0x00,0xC0,0xF0,0x70,0x18,0x0C,0x04,
	0x04,0x04,0x04,0x0C,0x18,0x78,0xF0,0xC0,
	0x00,0x3F,0xFF,0xFF,0x80,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,
	0x00,0x00,0x00,0x03,0x07,0x06,0x0C,0x08,
	0x08,0x08,0x08,0x0C,0x06,0x07,0x03,0x00},/*"0",0*/
	{0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x0C,
	0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,
	0x0F,0x0F,0x0F,0x08,0x08,0x08,0x00,0x00},/*"1",1*/
	{0x00,0x60,0x30,0x18,0x18,0x0C,0x0C,0x0C,
	0x0C,0x0C,0x1C,0x1C,0x38,0xF8,0xF0,0xE0,
	0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,
	0x40,0x60,0x30,0x18,0x0C,0x07,0x03,0x00,
	0x08,0x08,0x0C,0x0E,0x0E,0x0D,0x0D,0x0C,
	0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x06},/*"2",2*/
	{0x00,0x20,0x30,0x18,0x08,0x0C,0x0C,0x0C,
	0x0C,0x0C,0x1C,0x1C,0xF8,0xF8,0x70,0x00,
	0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,
	0x06,0x0E,0x0E,0x1D,0x3D,0xFC,0xF8,0xF0,
	0x00,0x04,0x0C,0x0C,0x0C,0x08,0x08,0x08,
	0x08,0x08,0x08,0x04,0x06,0x03,0x01,0x00},/*"3",3*/
	{0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,
	0x20,0x10,0x08,0xFC,0xFC,0xFC,0x00,0x00,
	0x60,0x70,0x68,0x64,0x62,0x61,0x60,0x60,
	0x60,0x60,0x60,0xFF,0xFF,0xFF,0x60,0x60,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x0F,0x0F,0x0F,0x00,0x00},/*"4",4*/
	{0x00,0x00,0x00,0x00,0xC0,0xA0,0x98,0x8C,
	0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x04,
	0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x03,
	0x03,0x03,0x07,0x07,0x0E,0x3C,0xFC,0xF0,
	0x00,0x00,0x04,0x0C,0x0C,0x0C,0x08,0x08,
	0x08,0x08,0x08,0x04,0x02,0x03,0x01,0x00},/*"5",5*/
	{0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x30,
	0x18,0x18,0x08,0x0C,0x04,0x04,0x04,0x04,
	0x00,0x7C,0xFF,0xFF,0x07,0x04,0x02,0x02,
	0x02,0x02,0x02,0x06,0x06,0x1C,0xFC,0xF8,
	0x00,0x00,0x01,0x03,0x07,0x06,0x0C,0x08,
	0x08,0x08,0x08,0x08,0x04,0x06,0x03,0x01},/*"6",6*/
	{0x00,0x20,0x18,0x1C,0x0C,0x0C,0x0C,0x0C,
	0x0C,0x0C,0x0C,0x0C,0x8C,0xEC,0x7C,0x1C,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
	0x0E,0x07,0x01,0x00,0x00,0x00,0x00,0x00},/*"7",7*/
	{0x00,0x00,0xE0,0xF0,0xF8,0x8C,0x0C,0x04,
	0x04,0x04,0x04,0x04,0x8C,0xF8,0xF8,0x70,
	0x00,0x00,0xC0,0xE1,0xF1,0x33,0x1F,0x0F,
	0x0E,0x0E,0x1E,0x1E,0x39,0x71,0xF0,0xE0,
	0x00,0x00,0x01,0x03,0x07,0x06,0x0C,0x08,
	0x08,0x08,0x08,0x08,0x0C,0x04,0x07,0x03},/*"8",8*/
	{0x00,0xC0,0xF0,0xF0,0x18,0x08,0x04,0x04,
	0x04,0x04,0x04,0x0C,0x18,0x38,0xF0,0xE0,
	0x00,0x03,0x07,0x0F,0x0E,0x18,0x18,0x10,
	0x10,0x10,0x10,0x90,0xD0,0xF8,0x7F,0x3F,
	0x00,0x00,0x08,0x08,0x08,0x08,0x0C,0x04,
	0x06,0x06,0x03,0x03,0x01,0x00,0x00,0x00},/*"9",9*/
};

const uint8_t number_2032[10][80] = 
{
	{0x00,0x00,0x00,0xC0,0xE0,0x70,0x18,0x08,
	0x04,0x04,0x04,0x04,0x0C,0x18,0x30,0xE0,
	0xC0,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,
	0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x01,0xFF,0xFF,0xF8,0x00,
	0x00,0x1F,0xFF,0xFF,0xC0,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
	0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0x03,
	0x07,0x0C,0x18,0x30,0x20,0x20,0x20,0x20,
	0x10,0x18,0x0C,0x07,0x03,0x00,0x00,0x00},/*"0",0*/
	{0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x08,0x18,0xF8,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x30,0x3F,0x3F,0x3F,0x30,0x20,0x20,0x00,0x00,0x00,0x00,0x00},/*"1",1*/
	{0x00,0x00,0x00,0xE0,0x70,0x38,0x18,0x1C,0x1C,0x1C,0x1C,0x3C,0x78,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x18,0x0C,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x38,0x3C,0x3E,0x3B,0x39,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x3C,0x1E,0x02,0x00},/*"2",2*/
	{0x00,0x00,0x80,0x60,0x30,0x38,0x18,0x1C,0x1C,0x1C,0x1C,0x3C,0x78,0xF8,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xD8,0xCF,0x87,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x0F,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x18,0x38,0x38,0x30,0x30,0x20,0x20,0x20,0x20,0x10,0x18,0x0C,0x07,0x03,0x00,0x00,0x00,0x00},/*"3",3*/
	{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xF8,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x70,0x18,0x06,0x03,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x78,0x6E,0x63,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xFF,0xFF,0xFF,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00},/*"4",4*/
	{0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x04,0x00,0x00,0x00,0x00,0x00,0x10,0x1E,0x1D,0x1C,0x3C,0x38,0x38,0x78,0x70,0xF0,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0xFF,0xFF,0x7E,0x00,0x00,0x00,0x00,0x18,0x1C,0x38,0x38,0x30,0x30,0x30,0x30,0x10,0x18,0x18,0x0C,0x06,0x03,0x01,0x00,0x00,0x00},/*"5",5*/
	{0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x30,0x18,0x08,0x0C,0x0C,0x04,0x04,0x04,0x00,0x00,0x00,0x80,0xF0,0xFC,0x7E,0x4F,0x43,0x20,0x20,0x20,0x20,0x20,0x60,0xE0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x01,0x07,0x0F,0x1C,0x18,0x30,0x20,0x20,0x20,0x20,0x20,0x10,0x18,0x0C,0x07,0x03,0x00,0x00},/*"6",6*/
	{0x00,0x80,0x70,0x3C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x9C,0xFC,0x7C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFC,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF8,0x3F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x3E,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",7*/
	{0x00,0x00,0xC0,0xE0,0xF0,0x18,0x08,0x0C,0x04,0x04,0x04,0x04,0x04,0x08,0x18,0xF0,0xF0,0xC0,0x00,0x00,0x00,0x00,0x07,0x0F,0x1F,0x3E,0x7C,0xF8,0xF0,0xE0,0xE0,0xC0,0xE0,0x30,0x1C,0x1F,0x0F,0x03,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF8,0x1C,0x06,0x03,0x01,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7E,0xFC,0xF8,0xE0,0x00,0x00,0x00,0x03,0x07,0x0F,0x1C,0x18,0x30,0x20,0x20,0x20,0x20,0x20,0x30,0x10,0x18,0x0F,0x07,0x03,0x00},/*"8",8*/
	{0x00,0x00,0x00,0xC0,0xE0,0x30,0x18,0x08,0x04,0x04,0x04,0x04,0x0C,0x18,0x38,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x06,0x06,0x04,0x04,0x04,0x04,0xC4,0xE2,0xFE,0x3F,0x0F,0x01,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x30,0x30,0x10,0x18,0x0C,0x06,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00},/*"9",9*/
};



// 摄氏度单位符号
const uint8_t celsius_1616[1][32] =
{
	// {0x00,0x0C,0x12,0x0C,0xF8,0x04,0x02,0x02,0x04,0x18,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x40,0x40,0x40,0x30,0x00},/*"℃",0*/  // 12*16
	{0x00,0x0C,0x12,0x0E,0x80,0xF0,0x08,0x04,0x02,0x02,0x02,0x04,0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x1F,0x30,0x20,0x40,0x40,0x40,0x40,0x20,0x10,0x00,0x00},/*"℃",0*/
};

// 摄氏度单位符号
const uint8_t celsius_2424[1][72] =
{
	{
		0x00,0x00,0x00,0x3E,0x22,0x22,0x1E,0x00,
	 	0xE0,0x70,0x1C,0x04,0x06,0x02,0x02,0x02,
		0x04,0x04,0x08,0x30,0xF8,0x00,0x00,0x00,
		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
		0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
		0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
		0x0F,0x1C,0x30,0x60,0xC0,0xC0,0xC0,0xC0,
		0x40,0x60,0x30,0x18,0x04,0x00,0x00,0x00},/*"℃",0*/
};

// 显示指定大小的图片
void oled_show_dis_32_32_BMP(uint8_t x, uint8_t y, const uint8_t *data_dis)
{
	uint8_t i, j;
	y = y / 8;

	if (data_dis == NULL)
	{
		return;
	}

	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 32; j++)
		{
			if ((y + i < 8) && (x + j < 128)) // 防止越界
			{
				OLED_dis_buf[y + i][x + j] = data_dis[32 * i + j];
			}
		}
	}
}

void oled_show_dis_16_16_BMP(uint8_t bmp_x, uint8_t bmp_y, const uint8_t *data_dis)
{
	uint8_t i, j;
	bmp_y = bmp_y / 8;

	if (data_dis == NULL)
	{
		return;
	}

	for (i = 0; i < 2; i++)
	{
		for (j = 0; j < 16; j++)
		{
			if ((bmp_y + i < 8) && (bmp_x + j < 128)) // 防止越界
			{
				OLED_dis_buf[bmp_y + i][bmp_x + j] = data_dis[16 * i + j];
			}
		}
	}
}

// 获取图片
const uint8_t *oled_show_get_BMP_data(uint8_t _id)
{
	const uint8_t *data_dis = NULL;

	switch (_id)
	{
	case 0:
		data_dis = NULL;
		break;
	case BMP_32_REFLOW:
		data_dis = data_dis_1; // 回流焊
		break;
	case BMP_32_HEATING:
		data_dis = data_dis_2; // 加热
		break;
	case BMP_32_SET:
		data_dis = data_dis_3; // 设置
		break;
	case BMP_32_STATE:
		data_dis = data_dis_4; // 状态
		break;
	case BMP_32_CONTROL:
		data_dis = data_dis_5; // 控制
		break;
	case BMP_32_RIGHT:
		data_dis = data_dis_6; // 右
		break;
	case BMP_32_LEFT:
		data_dis = data_dis_7; // 左
		break;
	case BMP_16_UNCHECKED:
		data_dis = data_dis_16_1;
		break;
	case BMP_16_CHECKED:
		data_dis = data_dis_16_2;
		break;

	default:
		data_dis = data_dis_7;
		break;
	}

	return data_dis;
}

// 显示相应ID对应的图片
void oled_show_dis_ID(uint8_t bmp_x, uint8_t bmp_y, uint8_t _id)
{
	const uint8_t *data_dis = NULL;

	data_dis = oled_show_get_BMP_data(_id);

	if (data_dis == NULL)
		return;

	if (_id > BMP_32_LEFT)
	{
		oled_show_dis_16_16_BMP(bmp_x, bmp_y, data_dis);
	}
	else if (_id > 0)
	{
		oled_show_dis_32_32_BMP(bmp_x, bmp_y, data_dis);
	}
}

const uint8_t text_data_1616[][32] =
	{
		{0x00, 0x08, 0x30, 0x00, 0xFF, 0x20, 0x20, 0x20, 0x20, 0xFF, 0x20, 0x20, 0x22, 0x2C, 0x20, 0x00,
		0x04, 0x04, 0x02, 0x01, 0xFF, 0x80, 0x40, 0x30, 0x0E, 0x01, 0x06, 0x18, 0x20, 0x40, 0x80, 0x00}, /*"状",0*/
		{0x00, 0x04, 0x84, 0x84, 0x44, 0x24, 0x54, 0x8F, 0x14, 0x24, 0x44, 0x84, 0x84, 0x04, 0x00, 0x00,
		0x41, 0x39, 0x00, 0x00, 0x3C, 0x40, 0x40, 0x42, 0x4C, 0x40, 0x40, 0x70, 0x04, 0x09, 0x31, 0x00}, /*"态",1*/
		{0x10, 0x10, 0x10, 0xFF, 0x90, 0x20, 0x98, 0x48, 0x28, 0x09, 0x0E, 0x28, 0x48, 0xA8, 0x18, 0x00,
		0x02, 0x42, 0x81, 0x7F, 0x00, 0x40, 0x40, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x40, 0x00}, /*"控",2*/
		{0x10, 0x60, 0x02, 0x8C, 0x00, 0x00, 0xFE, 0x92, 0x92, 0x92, 0x92, 0x92, 0xFE, 0x00, 0x00, 0x00,
		0x04, 0x04, 0x7E, 0x01, 0x40, 0x7E, 0x42, 0x42, 0x7E, 0x42, 0x7E, 0x42, 0x42, 0x7E, 0x40, 0x00}, /*"温",3*/
		{0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0xF0, 0x00, 0x00, 0xF8, 0x08, 0x08, 0x08, 0xF8, 0x00, 0x00,
		0x80, 0x40, 0x30, 0x0F, 0x40, 0x80, 0x7F, 0x00, 0x00, 0x7F, 0x20, 0x20, 0x20, 0x7F, 0x00, 0x00}, /*"加",4*/
		{0x08, 0x08, 0x88, 0xFF, 0x48, 0x48, 0x00, 0x08, 0x48, 0xFF, 0x08, 0x08, 0xF8, 0x00, 0x00, 0x00,
		0x81, 0x65, 0x08, 0x07, 0x20, 0xC0, 0x08, 0x04, 0x23, 0xC0, 0x03, 0x00, 0x23, 0xC4, 0x0F, 0x00}, /*"热",5*/
		{0x00, 0x00, 0xFE, 0x02, 0x02, 0xF2, 0x12, 0x12, 0x12, 0xF2, 0x02, 0x02, 0xFE, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x7F, 0x20, 0x20, 0x27, 0x24, 0x24, 0x24, 0x27, 0x20, 0x20, 0x7F, 0x00, 0x00, 0x00}, /*"回",6*/
		{0x10, 0x60, 0x02, 0x8C, 0x00, 0x44, 0x64, 0x54, 0x4D, 0x46, 0x44, 0x54, 0x64, 0xC4, 0x04, 0x00,
		0x04, 0x04, 0x7E, 0x01, 0x80, 0x40, 0x3E, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7E, 0x80, 0xE0, 0x00}, /*"流",7*/
		{0x80, 0x70, 0x00, 0xFF, 0x20, 0x10, 0x00, 0x3E, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x3E, 0x00, 0x00,
		0x80, 0x60, 0x18, 0x07, 0x08, 0x30, 0x08, 0x09, 0x09, 0x09, 0xFF, 0x09, 0x09, 0x09, 0x08, 0x00}, /*"焊",8*/
		{0x40, 0x40, 0x42, 0xCC, 0x00, 0x40, 0xA0, 0x9E, 0x82, 0x82, 0x82, 0x9E, 0xA0, 0x20, 0x20, 0x00,
		0x00, 0x00, 0x00, 0x3F, 0x90, 0x88, 0x40, 0x43, 0x2C, 0x10, 0x28, 0x46, 0x41, 0x80, 0x80, 0x00}, /*"设",9*/
		{0x00, 0x17, 0x15, 0xD5, 0x55, 0x57, 0x55, 0x7D, 0x55, 0x57, 0x55, 0xD5, 0x15, 0x17, 0x00, 0x00,
		0x40, 0x40, 0x40, 0x7F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x7F, 0x40, 0x40, 0x40, 0x00}, /*"置",10*/
};



// 显示相应ID对应的字符
/****************************************
 * 功能：显示相应ID对应的字符
 * 参数：bmp_x，字符起始x坐标
 * 参数：bmp_y，字符起始y坐标
 * 参数：str_size，字库编码
 * 参数：_id，字符ID
 * 返回值：无
 * **************************************/
void oled_show_dis_char(uint8_t bmp_x, uint8_t bmp_y, uint8_t str_size, uint8_t _id)
{
	uint8_t i, j;
	bmp_y = bmp_y >> 3;			// 字符高度为8，所以y坐标需要右移3位
	switch (str_size)
	{
		case ASC2_0816:
		{
			j = 8;
			if(_id > ASC2_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+1 > 8 || bmp_x+i > 127)
					{
						return;
					} 
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = asc2_0816[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = asc2_0816[_id][j+i];
				}
			}
			break;
		}
		
		case NUMBER_1624:
		{
			j = 16;
			if(_id > NUM_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+2 > 8 || bmp_x+i > 127)
					{
						return;
					} 
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = number_1624[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = number_1624[_id][j + i];
					OLED_dis_buf[bmp_y + 2][bmp_x + i] = number_1624[_id][j*2 + i];
				}
			}
			break;
		}
		case NUMBER_2032:
		{
			j = 20;
			if(_id > NUM_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+3 > 8 || bmp_x+i > 127)
					{
						return;
					}
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = number_2032[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = number_2032[_id][j + i];
					OLED_dis_buf[bmp_y + 2][bmp_x + i] = number_2032[_id][j*2 + i];
					OLED_dis_buf[bmp_y + 3][bmp_x + i] = number_2032[_id][j*3 + i];
				}
			}
			break;
		}

		case CELSIUS_2424:
		{
			j = 24;
			if(_id > CELSIUS_2424_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+2 > 8 || bmp_x+i > 127)
					{
						return;
					} 
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = celsius_2424[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = celsius_2424[_id][j + i];
					OLED_dis_buf[bmp_y + 2][bmp_x + i] = celsius_2424[_id][j*2 + i];
				}
			}
			break;
		}

		case CELSIUS_1616:
		{
			j = 16;
			if(_id > CELSIUS_2424_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+1 > 8 || bmp_x+i > 127)
					{
						return;
					}
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = celsius_1616[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = celsius_1616[_id][j + i];
				}
			}
			break;
		}

		
		default:
			break;
	}
}

/****************************************
 * 功能：将字符转换为数字
 * 参数：str 字符
 * 参数：str_size 字库对应编码
 * 返回值：ASIIC码字符对应字库的数值
****************************************/
uint8_t oled_show_dis_chartonum(uint8_t str, uint8_t str_size)
{
	uint8_t num = 0;

	if(	str_size == ASC2_0816 ) //|| str_size == ASC2_1224
	{
		if(str >= ' ' && str <= 'z')
		{
			num = str - ' ';
		}
	}
	else if(str_size == NUMBER_1624 || str_size == NUMBER_2032)
	{
		if((str < ':') && (str >= '0'))
		{
			num = str - '0';
		}
	}

	return num;
}

/****************************************
 * 功能：显示字符串
 * 参数：bmp_x 起始x坐标
 * 参数：bmp_y 起始y坐标
 * 参数：str_size 字符大小
 * 参数：str 字符串
 * 参数：str_leng 字符串长度
 * 返回值：无
****************************************/
void oled_show_dis_string(uint8_t bmp_x, uint8_t bmp_y, uint8_t str_size, const char * str, uint8_t str_leng)
{
	uint8_t i;
	uint8_t str_x_leng;
	uint8_t num = 0;

	switch (str_size)
	{
		case (ASC2_0816):
		{
			str_x_leng = 8;
			
			break;
		}
		// case (ASC2_1224):
		// {
		// 	str_x_leng = 12;
		// 	break;
		// }

		case (NUMBER_1624):
		{
			str_x_leng = 16;
			break;
		}

		case (NUMBER_2032):
		{
			str_x_leng = 20;
			break;
		}
		
		default:
			break;
	}

	for ( i = 0; i < str_leng; i++)
	{
		num = oled_show_dis_chartonum(str[i], str_size);
		oled_show_dis_char(bmp_x + i*str_x_leng, bmp_y, str_size, num);
	}
}


/****************************************
 * 功能：显示相应ID对应的字符
 * 参数：bmp_x，字符起始x坐标
 * 参数：bmp_y，字符起始y坐标
 * 参数：str_size，字库编码
 * 参数：_id，字符ID
 * 返回值：无
 * **************************************/
void oled_show_dis_w_char(uint8_t bmp_x, uint8_t bmp_y, uint8_t str_size, uint8_t _id)
{
	uint8_t i, j;
	bmp_y = bmp_y >> 3;			// 字符高度为8，所以y坐标需要右移3位
	switch (str_size)
	{
		case ASC2_0816:
		{
			j = 8;
			if(_id > ASC2_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+1 > 8 || bmp_x+i > 127)
					{
						return;
					} 
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~asc2_0816[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~asc2_0816[_id][j+i];
				}
			}
			break;
		}
		// case ASC2_1224:
		// {
		// 	j = 12;
		// 	if(_id > ASC2_MAX)
		// 	{
		// 		return;
		// 	}
		// 	else
		// 	{
		// 		for ( i = 0; i < j; i++)
		// 		{
		// 			if(bmp_y+2 > 8 || bmp_x+i > 127)
		// 			{
		// 				return;
		// 			} 
		// 			OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~asc2_1224[_id][i];
		// 			OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~asc2_1224[_id][j + i];
		// 			OLED_dis_buf[bmp_y + 2][bmp_x + i] = ~asc2_1224[_id][j*2 + i];
		// 		}
		// 	}
		// 	break;
		// }
		case NUMBER_1624:
		{
			j = 16;
			if(_id > NUM_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+2 > 8 || bmp_x+i > 127)
					{
						return;
					} 
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~number_1624[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~number_1624[_id][j + i];
					OLED_dis_buf[bmp_y + 2][bmp_x + i] = ~number_1624[_id][j*2 + i];
				}
			}
			break;
		}
		case NUMBER_2032:
		{
			j = 20;
			if(_id > NUM_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+3 > 8 || bmp_x+i > 127)
					{
						return;
					}
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~number_2032[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~number_2032[_id][j + i];
					OLED_dis_buf[bmp_y + 2][bmp_x + i] = ~number_2032[_id][j*2 + i];
					OLED_dis_buf[bmp_y + 3][bmp_x + i] = ~number_2032[_id][j*3 + i];
				}
			}
			break;
		}

		case CELSIUS_2424:
		{
			j = 24;
			if(_id > CELSIUS_2424_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+2 > 8 || bmp_x+i > 127)
					{
						return;
					} 
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~celsius_2424[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~celsius_2424[_id][j + i];
					OLED_dis_buf[bmp_y + 2][bmp_x + i] = ~celsius_2424[_id][j*2 + i];
				}
			}
			break;
		}

		case CELSIUS_1616:
		{
			j = 16;
			if(_id > CELSIUS_2424_MAX)
			{
				return;
			}
			else
			{
				for ( i = 0; i < j; i++)
				{
					if(bmp_y+1 > 8 || bmp_x+i > 127)
					{
						return;
					}
					OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~celsius_1616[_id][i];
					OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~celsius_1616[_id][j + i];
				}
			}
			break;
		}

		default:
			break;
	}
}

/****************************************
 * 功能：取反显示字符串-白底黑字
 * 参数：bmp_x 起始x坐标
 * 参数：bmp_y 起始y坐标
 * 参数：str_size 字符大小
 * 参数：str 字符串
 * 参数：str_leng 字符串长度
 * 返回值：无
****************************************/
void oled_show_dis_w_string(uint8_t bmp_x, uint8_t bmp_y, uint8_t str_size, const char * str, uint8_t str_leng)
{
	uint8_t i;
	uint8_t str_x_leng;
	uint8_t num = 0;

	switch (str_size)
	{
		case (ASC2_0816):
		{
			str_x_leng = 8;
			
			break;
		}
		
		case (NUMBER_1624):
		{
			str_x_leng = 16;
			break;
		}

		case (NUMBER_2032):
		{
			str_x_leng = 20;
			break;
		}
		
		default:
			break;
	}

	for ( i = 0; i < str_leng; i++)
	{
		num = oled_show_dis_chartonum(str[i], str_size);
		oled_show_dis_w_char(bmp_x + i*str_x_leng, bmp_y, str_size, num);
	}

}

/****************************************
 * 功能：显示相应ID对应的文字
 * 参数：bmp_x 起始x坐标
 * 参数：bmp_y 起始y坐标
 * 参数：_id 文字ID
 * 返回值：无
****************************************/ 
void oled_show_dis_ID_Text(uint8_t bmp_x, uint8_t bmp_y, uint8_t _id)
{
	uint8_t i,k;
	uint8_t data_leng = 0;
	bmp_y = bmp_y / 8;

	if(_id > TEXT_16_MAX)
	{
		return;
	}
	else if(_id == TEXT_16_REFLOW)
	{
		data_leng = 3;
	}
	else
	{
		data_leng = 2;
	}
	for ( i = 0; i < (data_leng); i++)
	{
		for (k = 0; k < 16; k++)
		{
			OLED_dis_buf[bmp_y + 0][bmp_x + k] = text_data_1616[_id+i][k];
			OLED_dis_buf[bmp_y + 1][bmp_x + k] = text_data_1616[_id+i][1*16+k];
		}
		
		bmp_x = bmp_x + 16;		// 16
	}
}

/****************************************
 * 功能：对应行取反显示
 * 参数：bmp_y 行
 * 返回值：无
****************************************/ 
void oled_show_dis_highlight(uint8_t bmp_x, uint8_t bmp_y, uint8_t str_size)
{
	uint8_t i;
	
	bmp_y = bmp_y / 8;
	switch (str_size)
	{
		case (ASC2_0816):
		{
			for ( i = 0; i < 8; i++)
			{
				OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~OLED_dis_buf[bmp_y + 0][bmp_x + i];
				OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~OLED_dis_buf[bmp_y + 1][bmp_x + i];
			}
			break;
		}
		
		case (NUMBER_1624):
		{
			for ( i = 0; i < 16; i++)
			{
				OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~OLED_dis_buf[bmp_y + 0][bmp_x + i];
				OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~OLED_dis_buf[bmp_y + 1][bmp_x + i];
				OLED_dis_buf[bmp_y + 2][bmp_x + i] = ~OLED_dis_buf[bmp_y + 2][bmp_x + i];
				OLED_dis_buf[bmp_y + 3][bmp_x + i] = ~OLED_dis_buf[bmp_y + 3][bmp_x + i];
			}
			break;
		}
		case (NUMBER_2032):
		{
			for ( i = 0; i < 20; i++)
			{
				OLED_dis_buf[bmp_y + 0][bmp_x + i] = ~OLED_dis_buf[bmp_y + 0][bmp_x + i];
				OLED_dis_buf[bmp_y + 1][bmp_x + i] = ~OLED_dis_buf[bmp_y + 1][bmp_x + i];
				OLED_dis_buf[bmp_y + 2][bmp_x + i] = ~OLED_dis_buf[bmp_y + 2][bmp_x + i];
				OLED_dis_buf[bmp_y + 3][bmp_x + i] = ~OLED_dis_buf[bmp_y + 3][bmp_x + i];
				OLED_dis_buf[bmp_y + 4][bmp_x + i] = ~OLED_dis_buf[bmp_y + 4][bmp_x + i];
			}
			break;
		}
		default:
			break;
	}
}

#endif
